/* A COMPLETER - Pef, 2 mai
	Di-Costanzo Jonathan
	Fauché Pierre-Élie
	3TC 3
*/

#ifndef __P2P_RESEARCH
#define __P2P_RESEARCH

#include "p2p_common.h"

/* utilisation de p2p_search */

/***************************************************************************
Création (allocation) d'un p2p_search
***************************************************************************/
p2p_search p2p_search_create();

/***************************************************************************
Suppression de la liste
***************************************************************************/
void p2p_search_delete(p2p_search liste);

/* utilisation de p2p_reply */

/***************************************************************************
Création (allocation) d'un p2p_reply
***************************************************************************/
p2p_reply p2p_reply_create();

/***************************************************************************
Suppression de la liste des réponses
***************************************************************************/
void p2p_reply_delete(p2p_reply liste);

/***************************************************************************
Récupération d'un pointeur vers la 
structure p2p_reply_item_struct répondant aux critères demandés
Renvoie NULL si pas trouvée
***************************************************************************/
p2p_reply_item p2p_search_get(server_params *sp, unsigned long int search, int result);

/* échanges de messages de recherches et réponses */

/***************************************************************************
Réception d'un message P2P_MSG_SEARCH et envoi REPLY au besoin
***************************************************************************/
int p2p_search_received(server_params *sp, p2p_msg search_msg);

/***************************************************************************
Envoi d'un message P2P_MSG_SEARCH
***************************************************************************/
int p2p_search_send(server_params *sp, char *file_name);

/***************************************************************************
Réception d'un message P2P_MSG_REPLY
***************************************************************************/
int p2p_reply_received(server_params *sp, p2p_msg msg);

/***************************************************************************
Affichage des recherches effectuées
***************************************************************************/
int p2p_list_search(server_params *sp);

/***************************************************************************
Affichage des résultats d'une recherche
***************************************************************************/
int p2p_list_result(server_params *sp, char *req_str);

#endif
